For multiple component codes, optimal decoding is often a very complex task, and may require large periods of time, not usually available for on-line decoding. In order to overcome this problem, iterative decoding techniques have been developed. Rather than determining immediately whether received bits are zero or one, the receiver assigns each bit a value on a multi-level scale representative of the probability that the bit is one.
A soft input channel decoder requires having at its input the log-likelihood ratio (LLR) of the transmitted symbols, or some approximation of the LLR of the transmitted symbols. When using biphase phase shift keying (BPSK), a large positive value of the LLR indicates that the transmitted symbol is a “1” with high probability. A large negative value of the LLR indicates that the transmitted symbol is a “−1” with high probability. A low LLR magnitude implies low confidence in the value of the symbol. The channel decoder then utilizes the sequence of LLR values to decode the transmitted information in a manner that minimizes the error probability. This is possible because the LLR value of each symbol is directly related to the noise and interference that distorted the transmission the corresponding symbol.
Data represented on the multi-level scale is referred to as “soft data,” and iterative decoding is usually soft-in/soft-out, i.e., the decoding process receives a sequence of inputs corresponding to probabilities for the bit values and provides as output corrected probabilities taking into account constraints of the code. Generally, a decoder which performs iterative decoding, uses soft data from former iterations to decode the soft data read by the receiver.
Like reference symbols in the various drawings indicate like elements.